/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package entity;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author grillo
 */
@Entity
@Table(name = "corsostudio")
@NamedQueries({@NamedQuery(name = "CorsoStudio.findAll", query = "SELECT c FROM CorsoStudio c"), @NamedQuery(name = "CorsoStudio.findByIdcorso", query = "SELECT c FROM CorsoStudio c WHERE c.idcorso = :idcorso"), @NamedQuery(name = "CorsoStudio.findByDescrizione", query = "SELECT c FROM CorsoStudio c WHERE c.descrizione = :descrizione"), @NamedQuery(name = "CorsoStudio.findByNome", query = "SELECT c FROM CorsoStudio c WHERE c.nome = :nome"), @NamedQuery(name = "CorsoStudio.findByFacolta", query = "SELECT c FROM CorsoStudio c WHERE c.facolta = :facolta"), @NamedQuery(name = "CorsoStudio.findByTassaPieno", query = "SELECT c FROM CorsoStudio c WHERE c.tassaPieno = :tassaPieno"), @NamedQuery(name = "CorsoStudio.findByTassaParziale", query = "SELECT c FROM CorsoStudio c WHERE c.tassaParziale = :tassaParziale")})
public class CorsoStudio implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idcorso")
    private Integer idcorso;
    @Basic(optional = false)
    @Column(name = "descrizione")
    private String descrizione;
    @Basic(optional = false)
    @Column(name = "nome")
    private String nome;
    @Basic(optional = false)
    @Column(name = "facolta")
    private String facolta;
    @Basic(optional = false)
    @Column(name = "tassa_pieno")
    private double tassaPieno;
    @Basic(optional = false)
    @Column(name = "tassa_parziale")
    private double tassaParziale;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idcorso")
    private List<Studente> studenteCollection;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idcorso")
    private List<Esame> esameCollection;

    public CorsoStudio() {
    }

    public CorsoStudio(Integer idcorso) {
        this.idcorso = idcorso;
    }

    public CorsoStudio(Integer idcorso, String descrizione, String nome, String facolta, double tassaPieno, double tassaParziale) {
        this.idcorso = idcorso;
        this.descrizione = descrizione;
        this.nome = nome;
        this.facolta = facolta;
        this.tassaPieno = tassaPieno;
        this.tassaParziale = tassaParziale;
    }

    public Integer getIdcorso() {
        return idcorso;
    }

    public void setIdcorso(Integer idcorso) {
        this.idcorso = idcorso;
    }

    public String getDescrizione() {
        return descrizione;
    }

    public void setDescrizione(String descrizione) {
        this.descrizione = descrizione;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getFacolta() {
        return facolta;
    }

    public void setFacolta(String facolta) {
        this.facolta = facolta;
    }

    public double getTassaPieno() {
        return tassaPieno;
    }

    public void setTassaPieno(double tassaPieno) {
        this.tassaPieno = tassaPieno;
    }

    public double getTassaParziale() {
        return tassaParziale;
    }

    public void setTassaParziale(double tassaParziale) {
        this.tassaParziale = tassaParziale;
    }

    public List<Studente> getStudenteCollection() {
        return studenteCollection;
    }

    public void setStudenteCollection(List<Studente> studenteCollection) {
        this.studenteCollection = studenteCollection;
    }

    public List<Esame> getEsameCollection() {
        return esameCollection;
    }

    public void setEsameCollection(List<Esame> esameCollection) {
        this.esameCollection = esameCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idcorso != null ? idcorso.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CorsoStudio)) {
            return false;
        }
        CorsoStudio other = (CorsoStudio) object;
        if ((this.idcorso == null && other.idcorso != null) || (this.idcorso != null && !this.idcorso.equals(other.idcorso))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entity.CorsoStudio[idcorso=" + idcorso + "]";
    }

}
